/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.ventasInternet.Delegate;

import com.ventasInternet.entity.Categoria;
import com.ventasInternet.entity.Cliente;
import com.ventasInternet.entity.Imagen;
import com.ventasInternet.entity.Producto;
import com.ventasInternet.entity.Usuario;
import com.ventasInternet.facade.FacadeVentasInternetLocal;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.naming.InitialContext;
import javax.naming.NamingException;

/**
 *
 * @author DESARO03
 */
public class DelegateVentasInternet {
    private static DelegateVentasInternet delegateVentasInternet;
    private FacadeVentasInternetLocal facadeVentasInternetLocal;
    public DelegateVentasInternet() {
        try {
            InitialContext context= new InitialContext();
            facadeVentasInternetLocal = (FacadeVentasInternetLocal)context.lookup("java:global/VentasInternet-war/"
                    + "FacadeVentasInternet!com.ventasInternet.facade.FacadeVentasInternetLocal");
        } catch (NamingException ex) {
            Logger.getLogger(DelegateVentasInternet.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    public static DelegateVentasInternet getInstance(){
        if(delegateVentasInternet == null){
            delegateVentasInternet = new DelegateVentasInternet();
        }
        return delegateVentasInternet;
    }
//******************************************************************************
//********************************** METODOS ***********************************
//******************************************************************************
    
    //************************* GESTION DE CATEGORIAS **************************
    public void removeCategoriaDL(Categoria categoria) {
        facadeVentasInternetLocal.removeCategoriaFL(categoria);
    }
    public Categoria findCategoriaDL(Object id) {
        return facadeVentasInternetLocal.findCategoriaFL(id);
    }
    public List<Categoria> findAllCategoriaDL() {
        return facadeVentasInternetLocal.findAllCategoriaFL();
    }
    public List findCategoriaByNombre(String nombreCategoria) {
        return facadeVentasInternetLocal.findCategoriaByNombre(nombreCategoria);
    }
    public void editCategoriaDL(Categoria categoria) {
        facadeVentasInternetLocal.editCategoriaFL(categoria);
    }
    public void createCategoriaDL(Categoria categoria) {
        facadeVentasInternetLocal.createCategoriaFL(categoria);
    }
    //************************** GESTION DE CLIENTES ***************************

    public void registrarClienteDL(Usuario usuario, Cliente cliente) {
        facadeVentasInternetLocal.registrarClienteFL(usuario, cliente);
    }
    //************************ GESTION PRODUCTOS Productos *********************

    public void registrarProductoDL(Producto producto, List<Imagen> listImagenes) {
        facadeVentasInternetLocal.registrarProductoFL(producto, listImagenes);
    }

    public void modificarProductoDL(Producto producto,List<Imagen> listImagenes) {
        facadeVentasInternetLocal.modificarProductoFL(producto,listImagenes);
    }
    
    public List<Producto> findAllProductosDL() {
        return facadeVentasInternetLocal.findAllProductosFL();
    }

    public Producto findProductoDL(Object id) {
        return facadeVentasInternetLocal.findProductoFL(id);
    }
    
}
